﻿using IQReportes.Models;
using IQReportes.Models.Logica;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace IQReportes.ViewModels
{
    public class ModuloInfoViewModel
    {


        public string id { get; set; }

        public List<String> colores { get; set; }
        public string nombre { get; set; }
        public int tipoChart { get; set; }
        public int valorTree { get; set; }
        public bool descargar { get; set; }
        public bool ver { get; set; }

        public Modulo extract(int tipo, int numModulo)
        {
            Modulo m = new Modulo();
            m.idModulo = Int32.Parse(this.id);
            m.vcNombre = this.nombre;
            m.inNumModulo = numModulo;
            m.inTipo = tipo;
            return m;
        }

        public ModuloInfoViewModel(Modulo modulo, bool ver, bool descargar)
        {
            this.id = modulo.idModulo + "";

            this.nombre = modulo.vcNombre;
            this.descargar = descargar;
            this.ver = ver;
        }

        public ModuloInfoViewModel(int id, List<String> colores, string nombre, int tipoChart, int valorTree)
        {
            this.colores = colores;
            this.nombre = nombre;
            this.tipoChart = tipoChart;
            this.valorTree = valorTree;
            this.id = id + "";
            this.descargar = false;
            this.ver = true;
        }
        public ModuloInfoViewModel(string id, string nombre, bool ver, bool descargar)
        {
            this.id = id;
            this.nombre = nombre;
            this.ver = ver;
            this.descargar = descargar;
        }
        public ModuloInfoViewModel(int id, List<String> colores, string nombre, int tipoChart)
        {
            this.colores = colores;
            this.nombre = nombre;
            this.tipoChart = tipoChart;
            this.id = id + "";
            this.valorTree = -1;
            this.descargar = true;
            this.ver = true;
        }
        public ModuloInfoViewModel() { }

        public ModuloInfoViewModel(PerfilXModulo pXm)
        {
            this.id = pXm.idModulo + "";
            this.nombre = pXm.modulo.vcNombre;/*(new LogicaModulo()).getNombreModuloById(pXm.idModulo);*/
            this.descargar = pXm.bDescargar;
            this.ver = pXm.bVer;
        }

        public PerfilXModulo extractPXM(Perfil nuevoPerfil)
        {
            PerfilXModulo pxm = new PerfilXModulo();
            pxm.idPerfil = nuevoPerfil.idPerfil;
            pxm.idModulo = Int32.Parse(this.id);
            pxm.bDescargar = this.descargar;
            pxm.bVer = this.ver;
            return pxm;
        }

        public UsuarioXModulo extract(int idUsuario)
        {
            UsuarioXModulo uxm = new UsuarioXModulo();
            uxm.idModulo = Int32.Parse(this.id);
            uxm.idUsuario = idUsuario;
            uxm.inTipoChart = this.tipoChart;
            return uxm;
        }
    }
}